package com.krisyu.MementoPattern.template;

/**
 * @DATE 2022/1/8
 * @Author KrisYu
 * @Description 备忘录 通用模板 写法
 */
public class Client {
    public static void main(String[] args) {
        // 获取备忘录使用者实例
        User user = new User();
        user.setState("alive");
        // 获取备忘录管理器
        Caretaker caretaker = new Caretaker();
        // 保存用户状态至备忘录管理器。
        caretaker.setMemento(user.createMemento());
        // 用户初始状态
        System.out.println("\n----------------用户初始化状态----------------");
        System.out.println(user.getState());
        // 用户血量过低，死亡了
        System.out.println("\n---------------血量过低，用户死亡--------------");
        user.setState("dead");
        System.out.println(user.getState());
        // 用户复活，恢复原始状态
        System.out.println("\n---------------用户复活，恢复原始状态--------------");
        user.restoreMemento(caretaker.getMemento());
        System.out.println(user.getState());

    }
}
